package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;

import com.dao.DiscussgongyipinxinxiDao;
import com.entity.DiscussgongyipinxinxiEntity;
import com.service.DiscussgongyipinxinxiService;
import com.entity.vo.DiscussgongyipinxinxiVO;
import com.entity.view.DiscussgongyipinxinxiView;

/**
 * 服务实现类 - 讨论工艺品信息
 * 该类提供了与讨论工艺品信息相关的业务逻辑实现，继承了MyBatis-Plus的ServiceImpl类。
 * 实现了对讨论工艺品信息表的CRUD操作，包括分页查询、按条件查询、VO和View对象的处理。
 *
 * @author team10
 */
@Service("discussgongyipinxinxiService")
public class DiscussgongyipinxinxiServiceImpl extends ServiceImpl<DiscussgongyipinxinxiDao, DiscussgongyipinxinxiEntity> implements DiscussgongyipinxinxiService {

	/**
	 * 分页查询讨论工艺品信息
	 *
	 * @param params 查询参数
	 * @return 返回分页查询结果
	 */
	@Override
	public PageUtils queryPage(Map<String, Object> params) {
		// 创建分页对象，并调用selectPage进行分页查询
		Page<DiscussgongyipinxinxiEntity> page = this.selectPage(
				new Query<DiscussgongyipinxinxiEntity>(params).getPage(),
				new EntityWrapper<DiscussgongyipinxinxiEntity>() // 使用EntityWrapper封装查询条件
		);
		// 返回封装后的分页结果
		return new PageUtils(page);
	}

	/**
	 * 分页查询讨论工艺品信息，带有条件查询
	 *
	 * @param params 查询参数
	 * @param wrapper 条件查询封装
	 * @return 返回分页查询结果
	 */
	@Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<DiscussgongyipinxinxiEntity> wrapper) {
		// 创建分页对象并获取数据
		Page<DiscussgongyipinxinxiView> page =new Query<DiscussgongyipinxinxiView>(params).getPage();
		page.setRecords(baseMapper.selectListView(page, wrapper));  // 设置查询结果
		PageUtils pageUtil = new PageUtils(page);
		return pageUtil;  // 返回分页结果
	}

	/**
	 * 获取讨论工艺品信息的VO对象列表
	 *
	 * @param wrapper 查询条件封装
	 * @return 返回讨论工艺品信息的VO对象列表
	 */
	@Override
	public List<DiscussgongyipinxinxiVO> selectListVO(Wrapper<DiscussgongyipinxinxiEntity> wrapper) {
		return baseMapper.selectListVO(wrapper);
	}

	/**
	 * 获取单个讨论工艺品信息的VO对象
	 *
	 * @param wrapper 查询条件封装
	 * @return 返回单个讨论工艺品信息的VO对象
	 */
	@Override
	public DiscussgongyipinxinxiVO selectVO(Wrapper<DiscussgongyipinxinxiEntity> wrapper) {
		return baseMapper.selectVO(wrapper);
	}

	/**
	 * 获取讨论工艺品信息的View对象列表
	 *
	 * @param wrapper 查询条件封装
	 * @return 返回讨论工艺品信息的View对象列表
	 */
	@Override
	public List<DiscussgongyipinxinxiView> selectListView(Wrapper<DiscussgongyipinxinxiEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	/**
	 * 获取单个讨论工艺品信息的View对象
	 *
	 * @param wrapper 查询条件封装
	 * @return 返回单个讨论工艺品信息的View对象
	 */
	@Override
	public DiscussgongyipinxinxiView selectView(Wrapper<DiscussgongyipinxinxiEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}
}
